home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / LANG / SML40 / !Sml / Sml / README < prev    next >
Text File  |  1990-12-05  |  4KB  |  135 lines

  1. This Archive contains the RISC-OS executables for Edinburgh SML
  2.  
  3. WARNING: SML is not in the public domain.  To use this software
  4. legitimately you must first complete the license agreement.
  5. This may be found in the file ORIGREADME.
  6.  
  7. INTRODUCTION
  8. ------------
  9.  
  10. SML is a functional programming language with  very powerful and
  11. flexible date-typing mechanism, abstract data-types, and imperative
  12. features to make ``real-world'' programming possible.
  13.  
  14. The ability to do incremental compilation, and the powrful
  15. type-checking make it excellent for rapid prototyping.
  16. With the native compilers available for larger machines, 
  17. industrial scale applications can be developed with an
  18. efficiency comparable to fancy Smalltalk or LISP systems etc.
  19. Beats the pants off hacking away in low-level languages like
  20. C or Pascal.
  21.  
  22. The Edinburgh implementation compiles to an efficient  abstract
  23. machine which allows it to run well in relatively small machines
  24. (2M is plenty, small programs will run in 1M) at the cost of
  25. some loss of performance.   Speed is comparable with fast interpreted
  26. LISPs and rather better than Prolog.
  27.  
  28. CONTENTS
  29. --------
  30.  
  31. ml_1       - Source for UNIX manual page for SML
  32. LIBINFO    - Doc. of Library functions loaded as standard on top
  33.              of the SML core language.
  34. ORIGREADME - Original README with UNIX distribution.
  35. BOOTML     - Simple script to build an initial SML saved=state.
  36. config     - ML commands used by BOOTML to build the initial saved-state
  37. fam        - SML Abstract machine interpreter
  38. ml,tml     - Example Obey scripts for running SML.  tml uses less memory.
  39. smlcore_bk - Distribution format fam code for SML system saved-state.  Loaded
  40.              by BOOTML to build a proper local format saved-state.
  41. core_array - Source for optional SML array package.
  42. core_barra -  "
  43. compstuff  - Directory containing stuff needed if you want to re-compile
  44.        SML sometime.
  45.  
  46. NOTE:  If you have obtained this archive from the LFCS info-server you
  47. will find that the last three files are missing.  They are contained
  48. (under similar but somewhat longer names) in the edml-CompilerAndLib
  49. archive.
  50.  
  51. Even if you have copies of these three files it may be worth checking
  52. if more up to date versions are available from the LFCS info-server.
  53. E-mail to info-server@uk.ac.ed.lfcs if on JANET,
  54. info-server@lfcs.ed.ac.uk if on the Internet (etc).
  55.           
  56.  
  57. HOW TO BUILD A RUNNABLE SML SYSTEM
  58. ----------------------------------
  59.  
  60. (1) If file types are screwy set them sensibly.
  61.  
  62.  
  63. ml_1       - Text
  64. LIBINFO    - Text
  65. UNIXREADME - Text
  66. BOOTML     - Obey
  67. config     - Text
  68. fam        - Application
  69. ml,tml     - Obey
  70. smlcore_bk - Data
  71. core_array - Text
  72. core_barra - Text
  73.  
  74. Run BOOTML.
  75.  
  76.     This builds a saved-state smlcore_ex containing the default
  77.     SML system.
  78.  
  79. Move the files fam, ml (and/or tml) and smlcore_ex to wherever you keep
  80. your executables.  E.g. $.Bin, $.Library, $.Library.bin or
  81. whatever.
  82.  
  83. ENJOY!
  84.  
  85. Edit tml or ml if you want to change the amount of memory SML
  86. claims from the operating system.
  87.  
  88. The system only supports the core langauge - not the fancy module system -
  89. Alas.
  90.  
  91. If you want to use arrays you need to build a saved
  92. state with some extra stuff loaded.
  93. Edit ``config'' to load core_array and core_barra before
  94. the exportML that dumps the resulting state to smlcore_ex.
  95.  
  96. Recompiling SML
  97. ---------------
  98.  
  99. Read the README in the compstuff directory.
  100.  
  101. Please feed back any bug fixes (etc) either to me or to the
  102. Foundations lab.
  103.  
  104. BUGS
  105. ----
  106.  
  107. Currently, due to what appear to be bugs the Acorn's signal
  108. interface in ANSI-C, the handling of Floating Point exceptions
  109. like division by zero or overflow is somwhat erratic. Theoretically,
  110. SML ought to raise Qout, Prod (or whatever) exceptions that can
  111. then be handled by user-code if desired.  In practice, ANSI-C
  112. seems to blithely ignore the FP exceptions so that SML
  113. ends up returning ``infinity'' or other not-number values
  114. rather than launching exceptions.  
  115.  
  116. The scary part of this is that if you accept this and just tell ANSI-C
  117. to ignore FP exceptions the C library seems to crash certain programs.
  118. This behaviour has not so far been observed for SML but ...
  119.  
  120. The Motto: for the moment avoid writing SML that raises and traps
  121. FP exceptions.
  122.  
  123. Please send any queries to
  124.  
  125. JANET: as@uk.ac.ed.aipna   
  126. INTERNET: as@aipna.ed.ac.uk
  127. UUCP:  ...!ukc!aipna!as
  128.  
  129. Andrew Stevens
  130. Deptartment of Artificial Intelligence
  131. Edinburgh University
  132. 80 South Bridge
  133. EDINBURGH
  134.  
  135.